# 1 关于scheme

scheme是一门通用的计算机编程语言。是一个高阶语言,支持像结构化的数据,像string、list、symbol、vectors、字符等等。

Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循极简主义哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身[1]。

麻省理工学院与其他院校曾采用Scheme教授计算机科学入门课程。著名的入门教材《计算机程序的构造和解释》(SICP)利用Scheme来解释程序设计[2]。Scheme的广泛受众被视为一个主要优势,然而不同实现之间的差异成为了它的一个劣势[3]。

Scheme最早由麻省理工学院的盖伊·史提尔二世与杰拉德·杰伊·萨斯曼在1970年代发展出来,并由两人发表的“λ论文集”推广开来。 Scheme语言与λ演算关系十分密切。小写字母“λ”是Scheme语言的标志。

Scheme的哲学是:设计计算机语言不应该进行功能的堆砌,而应该尽可能减少弱点和限制,使剩下的功能显得必要[4]。Scheme是第一个使用静态作用域的Lisp方言,也是第一个引入“干净宏”和第一类续延的编程语言。

# 2 实际应用

# 计算机科学教育

很多著名的计算机科学院校都利用Scheme来教授入门级课程。以下为一些最为著名的教授Scheme的学校:

  • 麻省理工学院是Scheme与SICP的诞生地。直到2008年为止,麻省理工学院的入门课程6.001即是用Scheme来教授的。尽管现在Scheme已经不再被用于入门课程,麻省理工学院到目前为止还在教授SICP。

  • 伯克利加州大学的入门课程61A到2010年为止利用Scheme与SICP教授入门课程,并利用Scheme来实现Logo,另一个基于Lisp的编程语言。自2011年起,61A改用Python来教授SICP[19]。

  • 西北大学的入门课程CS2500利用Scheme来教授另一本著名的教材《程序设计方法》。 印第安那大学的入门课程C211利用Scheme来教授。

  • 耶鲁大学

  • 莱斯大学

  • 北京大学

  • ProgramByDesign项目在美国超过600所高中教授Scheme语言。

  • 滑铁卢大学数学系(包括 Computer Science)的入门课程CS115, CS116, CS135利用Scheme来教授。

  • 云林科技大学

# 开源软件

Last Updated: 12/11/2020, 1:11:36 PM